package cn.wolfcode.car.business.service;

import cn.wolfcode.car.business.domain.BpmnInfo;
import cn.wolfcode.car.business.query.BpmnInfoQuery;
import cn.wolfcode.car.common.base.page.TablePageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

public interface IBpmnInfoService {
    /**
     * 分页
     * @param qo
     * @return
     */
    TablePageInfo<BpmnInfo> query(BpmnInfoQuery qo);

    /**
     *  新增
     * @param bpmnInfo
     */
    void save(BpmnInfo bpmnInfo);

    /**
     * 批量删除
     * @param ids
     */
    void deleteBatch(String ids);

    /**
     * 编辑反显
     * @param id
     * @return
     */
    BpmnInfo get(Long id);

    /**
     * 编辑
     * @param bpmnInfo
     */
    void update(BpmnInfo bpmnInfo);

    /**
     * 流程文件部署
     * @param file
     * @param bpmnLabel
     * @param bpmnType
     * @param info
     */
    void deploy(MultipartFile file, String bpmnLabel, String bpmnType, String info) throws IOException;

    /**
     *  根据类型 获取资源文件输入流(XML PNG)
     * @param id
     * @param type
     * @return
     */
    InputStream getInputStreamByType(Long id, String type);

    /**
     * 删除流程部署
     * @param id
     */
    void delete(Long id);

    /**
     *  根据bpmnType 查询流程定义的KEY
     * @param auditType
     * @return
     */
    BpmnInfo getByBpmnType(String auditType);

}
